﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Generic.Contract;

namespace Generic.Business.Manager
{
    public interface IBMGeneric<BE, FE>: IBusinessManager<BE,FE>
        where BE : BusinessEntity
        where FE : FilterEntity
    {
        BE Copiar(BE entity);

        List<BE> ObterTodos(FE filter);

        BE ObterEntidade(int codigo);

        void Excluir(BE entity);

        /// <summary>
        /// Exclui todos os BE´s contidos na lista passada.
        /// </summary>
        /// <param name="entity"></param>
        void Excluir(List<BE> listEntity);

        /// <summary>
        /// Inclui/Altera o BE passado.
        /// </summary>
        /// <param name="entity"></param>
        BE Salvar(BE entity);

        /// <summary>
        /// Inclui/Altera todos os BE´s contidos na lista passada.
        /// </summary>
        /// <param name="entity"></param>
        List<BE> Salvar(List<BE> listEntity);
    }
}
